import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import menu from './modules/menu'
import user from '@/store/modules/user'
Vue.use(Vuex)

const store = new Vuex.Store({
  // 组合模块的配置项
  // 模块化开发
  /**
   * 1.拆分出去的模块要在modules位置注册号，否则不生效
   * 2.一旦开启了命名空间 namespaced 调用mutation action
   * this.$store.commit('模块名/mutation中的方法')
   */
  modules: {
    app,
    settings,
    menu,
    user
  },
  getters
})

export default store
// 1.区分vuex和Vuex.Store实例化出来destore 不一样 我们用的是后者
// 2.默认导出的写法导入时名字随便取 语义化即可
// 3.按需导出的时候 在导入的试试必须加上{} 且名字必须对应
